#include"myMenu.h"

void menu(student s[100],library *sb,int *n,int *m,int *o){
	while(1)
	{
		system("cls");
		printf("\t\t--------------------------大学教材购销管理系统--------------------------------\n");
		printf("\t\t-------------------------------1.学生用书系统---------------------------------\n");
		printf("\t\t-------------------------------2.购书系统-------------------------------------\n");
		printf("\t\t-------------------------------3.补售系统-------------------------------------\n");
		printf("\t\t-------------------------------0.退出-----------------------------------------\n");
		printf("\t\t-------------------------------输入序号:");
		
		int op;
		scanf("%d",&op);
		
		switch(op)
		{
			case 1:{
				menu1(s,n);
				break;
			}
			case 2:{
				menu2(s,sb,n,m,o);
				break;
			}
			case 3:{
				menu3(sb,m,o);
				break;
			}
			case 0:{
				return;
				break;
			}
			default :continue;
			
		}
		
	}
	
}
void menu1(student s[100],int *n){
	
	
	while(1)
	{
		system("cls");
		printf("\t\t-------------------------------学生用书系统-------------------------------------\n");
		printf("\t\t--------------------------------1.学生信息--------------------------------------\n");
		printf("输入学生的班级信息：");
		scanf("%d",&s[(*n)].sclass);
		printf("输入学生的学号信息：");
		scanf("%d",&s[(*n)].sno);
		printf("输入学生的电话信息：");
		scanf("%d",&s[(*n)].sphone);
		printf("\t\t-------------------------------学生用书系统-------------------------------------\n");
		printf("\t\t--------------------------------2.书单信息--------------------------------------\n");
		printf("输入学生用书的书名信息：");
		fflush(stdin);
		scanf("%s",&s[(*n)].b.bname);
		fflush(stdin);
		printf("输入学生用书的书号信息：");
		scanf("%d",&s[(*n)].b.bno);
		printf("输入学生用书的价格信息：");
		scanf("%d",&s[(*n)].b.bmeny);
		printf("输入学生用书的出版社信息：");
		scanf("%d",&s[(*n)].b.comeout);
		(*n)++;
		while(1)
		{
			printf("是否继续输入信息:（是填1，否填0）");
			int op1;
			scanf("%d",&op1);
			if (op1==0)
			{
				return ;
			}
		
			else if(op1==1){
				break;
			}
			else{
				printf("\t输入错误\n");
			}	
		}
	
	}
	
}
void menu2(student s[100],library *sb,int *n,int *m,int *o){
	system("cls");
	while(1)
	{
		
		printf("\t\t-------------------------------学生用书系统-------------------------------------\n");
		printf("\t\t--------------------------------1.身份核对--------------------------------------\n");
		printf("\t\t--------------------------------0.退出------------------------------------------\n");
		printf("\t\t-------------------------------输入序号:");
		int op2;
		scanf("%d",&op2);
		switch(op2)
		{
			case 1:{
				menu4(s,sb,n,m,o);
				break;
			}
			case 0:{
				return;
			}
			default:continue;
		}
		
		
	}
	
}
void menu4(student s[100],library *sb,int *n,int *m,int *o)
{
		
		system("cls");
		
		int flage=0;																			//flage用于进一步审核由于购买
		printf("请输入正确的信息:\n");
		student a;
		
		int qwe;
		printf("班级：");
		scanf("%d",&a.sclass);
		fflush(stdin);
		printf("姓名：");
		scanf("%s",&a.sname);
		fflush(stdin);
		printf("学号：");
		scanf("%d",&a.sno);
		for(int i=0;i<(*n);i++)																	//审核学生信息
		{
			if(s[i].sclass==a.sclass&&s[i].sno==a.sno)
			{
				a.b.bmeny=s[i].b.bmeny;
				strcpy(a.b.comeout,s[i].b.comeout);
				flage=1;
			}
			if(flage==1)
			{
				printf("输入要购买的书籍信息：\n");
				printf("书名：");
				scanf("%s",&a.b.bname);
				fflush(stdin);
				printf("书号：");
				scanf("%d",&a.b.bno);
				if(strcmp(a.b.bname,s[i].b.bname)==0&&a.b.bno==s[i].b.bno)
				{
					flage=2;
				}
					
				
				else
				{
					printf("你不可购买该书籍：");
					system("pause");
					return;
				}
			
			}
		}
		
		if(flage==2)
		{
			
			for (int i=0;i<(*m);i++)
			{
			
				if(strcmp(sb->have[i].bname,a.b.bname)==0)
				{
					
					printf("购买成功");
					flage=3;
					system("pause");
					sb->have[i].number--;												//删书籍数量
					for(int j=i;j<(*m);j++)												//删书籍类型
					{
						
						if(sb->have[j].number==0)
						{
							
							sb->have[j].bno=sb->have[j+1].bno;
							strcpy(sb->have[j].bname,sb->have[j+1].bname);
							(*m)--;
							
						}
						
					}
					
				}
				
			}
			if(flage!=3)
			{
				
				printf("库存不足，请下次购买");
				system("pause");
				for(int i=0;i<(*o);i++)
				{
					if(strcmp(sb->no[i].bname,a.b.bname)==0&&sb->no[i].bno==a.b.bno)
					{
						sb->no[i].number=sb->no[i].number+1;
						qwe=9;
					}
					
				}
				
				if(qwe!=9){
					
					sb->no[(*o)].number=1;
					strcpy(sb->no[(*o)].bname,a.b.bname);
					sb->no[(*o)].bno=a.b.bno;
					sb->no[(*o)].bmeny=a.b.bmeny;
					strcpy(sb->no[(*o)].comeout,a.b.comeout);
					(*o)++;
				}
				
				
			}
		}
		if(flage==0){
			printf("输入错误，请重新输入：");
			system("pause");
			return;
		}
		
	return;
	
}
void menu3(library *sb,int *m,int *o)											//
{
	while(1){
	
		system("cls");
		printf("\t\t---------------------------------补售系统-------------------------------------\n");
		printf("\t\t--------------------------------1.查询缺书信息--------------------------------\n");
		printf("\t\t--------------------------------2.购买书籍------------------------------------\n");
		printf("\t\t--------------------------------0.退出----------------------------------------\n");
		printf("\t\t-------------------------------输入序号:");
		int op3;
		scanf("%d",&op3);
		switch(op3)
		{
			case 1:{
				system("cls");
				printf("\t\t缺少书籍的信息：\n");
				
				if((*o)==0)
				{
					printf("\t\t无缺少书籍\n");
					system("pause");
				}else{
					for(int i=0;i<(*o);i++)
					{
						printf("缺少的第%d本书的信息：\n",i+1);
						printf("书号：%d\n",sb->no[i].bno);
						printf("书名：%s\n",sb->no[i].bname);
						printf("价格：%d\n",sb->no[i].bmeny);
						printf("出版社：%s\n",sb->no[i].comeout);
						printf("该书缺少数量为：%d\n",sb->no[i].number);
						system("pause");
					}
			
				}
				
			
				break;
			}
			case 2:{
				while(1)
				{
					
					system("cls");
				
					printf("\t\t--------------------------------购买书籍------------------------------------\n");
					printf("\t\t\n输入书的书名：");
					scanf("%s",&sb->have[(*m)].bname);
					fflush(stdin);
					printf("\t\t\n输入书的书号：");
					scanf("%d",&sb->have[(*m)].bno);
					printf("\t\t\n输入书的数量：");
					scanf("%d",&sb->have[(*m)].number);
					printf("购买完成；；\n");
					system("pause");
					(*m)++;
					for(int i=0;i<(*o);i++)
					{
						for(int l=0;l<(*m);l++)
						{
							
							if(sb->have[l].bno==sb->no[i].bno&&strcmp(sb->have[l].bname,sb->no[i].bname)==0&&sb->have[l].number>=sb->no[i].number)
							{
								for(int j=i;j<(*o);j++)
								{
									
									sb->no[j].bno=sb->no[j+1].bno;
									strcpy(sb->no[j].bname,sb->no[j+1].bname);
									(*o)--;
								}
							
							}
							else if(sb->have[l].bno==sb->no[i].bno&&strcmp(sb->have[l].bname,sb->no[i].bname)==0&&sb->have[l].number<sb->no[i].number)
							{
								sb->no[i].number=sb->no[i].number-sb->have[l].number;
								
							}
							
							
						}
						
					}
					//补差值（书籍）
					
					break;
					
				}
				
			}
			case 0:return;
			default:continue;
		}
	
	}
	
}